package com.zoweunion.mechanic.service.app;

import com.zoweunion.mechanic.entity.WorkHourSumEntity;
import com.zoweunion.mechanic.util.MyException;

import java.util.List;
import java.util.Map;

public interface AppOwnerDataStatisticsService {
    /**
     * 设备信息（app看板）
     * @body reqMap
     * 这里边传参时，type为1表示车主，type为2表示服务商
     * @return
     * @throws MyException
     */
    Map<String, Object> deviceInfo(Map<String, Object> reqMap);

    /**
     * 工单信息(app看板)
     * @body reqMap
     * 这里边传参时，type为1表示车主，type为2表示服务商
     * @return
     * @throws MyException
     */
    Map<String, Object> orderInfo(Map<String, Object> reqMap);

    /**
     * 工时油耗平均统计
     * 不通过特殊传参字段做判断，仅通过是否传oId和cId判断是否为车主账号或是单一车辆
     */
    Map<String, Object> workFuelAverage(Map<String, Object> params);

    /**
     * 车辆工时占比
     * type为2表示车主，显示车辆名称；type为1表示服务商，显示车主名称
     */
    List<WorkHourSumEntity> workingHoursPer(Map<String, Object> params);

    /**
     * 额度预警
     * @return
     * @throws MyException
     */
    Map<String, Object> quotaWarning(String oId);

    /**
     * 维修统计
     * @param
     * @return
     * @throws MyException
     */
    Map<String, Object> maintenanceStatistics(Map<String, Object> reqMap);

    /**
     * 额度预警（服务商）
     * @param
     * @return
     * @throws MyException
     */
    Map<String, Object> quotaWarningPer(String sId);

    /**
     * 营收统计
     * 这里边传参时，type为1是日，type为2表示月份
     * @param
     * @return
     * @throws MyException
     */
    Map<String, Object> revenueStatistics(Map<String, Object> reqMap) throws MyException;

    /**
     * 车主获取车辆数据
     * @param
     * @return
     */
    List<Map<String, Object>> carListByOwner(Map<String, Object> reqMap);
}
